/*
 * @lc app=leetcode.cn id=20 lang=swift
 *
 * [20] 有效的括号
 //{[]}
 思路：
 很明显用一个队列就可解决
 只要是括号匹配的问题。都可以用栈来解决
 */

// @lc code=start
class Solution20 {
    func isValid(_ s: String) -> Bool {
        var stack: [Character] = []
        for item in s {
            if let top = stack.last, checkMatch(top, b: item) {
                stack.removeLast()
            } else {
                stack.append(item)
            }
        }
        if stack.isEmpty {
            return true
        }
        return false
    }
    func checkMatch(_ a: Character, b: Character) -> Bool {
        if a == "(" && b == ")" {
            return true
        }
        if a == "{" && b == "}" {
            return true
        }
        if a == "["  && b == "]"{
            return true
        }
        return false
    }
    class func test() {
        let str = "()[]{}"
        print(Solution20().isValid(str))
    }
}
// @lc code=end

